package kr.co.mcshop.order;

import java.util.ArrayList;
import java.util.Map;

import javax.servlet.http.HttpSession;

import kr.co.mcshop.cart.cartController;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@RequestMapping(value="/order")
@Controller
public class orderController {
	
	@Autowired
	OrderService os;
	@RequestMapping(value="/orderForm")
	public String order(HttpSession session, Model model){
		int AmountTotal = TotalAmount(session);
		model.addAttribute("itemDirectList", session.getAttribute("itemList"));
		model.addAttribute("AmountTotal", AmountTotal);
		return "order/order";
	}
	
	@RequestMapping(value="/orderInsert")
	public String orderInsert(@RequestParam Map map,HttpSession session){
		ArrayList<Map> itemList = (ArrayList<Map>) session.getAttribute("itemList");
		//상품의 상세정보를 가져오기 위해서, session에 저장되어 있는 모든 목록들의 
		String card_no = (String) map.get("card_no1") + "-" + map.get("card_no2") + "-" + map.get("card_no3") + "-" + map.get("card_no4");
		//따로 입력받은 16자리의 카드번호를, 하나의 카드번호로 합쳐줌
		String card_date = (String) map.get("card_year") + "년" + map.get("card_month") + "월";
		//년과 월을 따로 입력받은, 카드의 유효기간을 하나의 문장으로 합쳐줌
		map.put("card_no", card_no);
		map.put("card_date", card_date);
		map.put("status", "주문신청");
		for(Map cartItem: itemList){
			String product_no = (String) cartItem.get("no");
			String quantity = (String) cartItem.get("quantity");
			String opts1 = (String) cartItem.get("opts1");
			String opts2 = (String) cartItem.get("opts2");
			//현재 카트에 들어있는 상품의 기본키를 가져온다.
			map.put("product_no", product_no);
			map.put("quantity", quantity);
			map.put("opts1", opts1);
			map.put("opts2", opts2);
			System.out.println(cartItem);
			System.out.println(map);
			os.InsertOrder(map);
		}
		
		
		return "/order/orderResult";		
	}
	
	@RequestMapping(value="/orderDirect")
	public String orderDirect(@RequestParam Map map, HttpSession session){
		ArrayList<Map> itemList = new ArrayList<Map>();
		itemList.add(map);
		System.out.println("orderDirect" + map);
		session.setAttribute("itemList", itemList);
		
		return "redirect:/order/orderForm";
	}
	public int TotalAmount(HttpSession session) {
		/*ArrayList<Map> itemList = new ArrayList<Map>();
		itemList.add((Map) session.getAttribute("itemList"));*/
		ArrayList<Map> itemList = (ArrayList<Map>) session.getAttribute("itemList");
		System.out.println("TotalAmount"+itemList);
		int AmountTotal = 0;
		for (Map map : itemList) {
			int price = (Integer.parseInt(map.get("price").toString()));
			int itemQuantity = (Integer
					.parseInt(map.get("quantity").toString()));
			AmountTotal += (price * itemQuantity);
			System.out.println(AmountTotal);
		}
		return AmountTotal;
	}
	
	
	
}

